package com.zzyl.nursing.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzyl.nursing.vo.CheckInElderVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import com.zzyl.nursing.domain.Elder;
import com.zzyl.nursing.dto.ElderPageQuery;
import java.util.Map;

/**
 * 老人Mapper接口
 * 
 * @author Zhy
 * @date 2025-02-25
 */
@Mapper
public interface ElderMapper extends BaseMapper<Elder>
{
    /**
     * 查询老人
     * 
     * @param id 老人主键
     * @return 老人
     */
    public Elder selectElderById(Long id);

    /**
     * 查询老人列表
     * 
     * @param elder 老人
     * @return 老人集合
     */
    public List<Elder> selectElderList(Elder elder);

    /**
     * 新增老人
     * 
     * @param elder 老人
     * @return 结果
     */
    public int insertElder(Elder elder);

    /**
     * 修改老人
     * 
     * @param elder 老人
     * @return 结果
     */
    public int updateElder(Elder elder);

    /**
     * 删除老人
     * 
     * @param id 老人主键
     * @return 结果
     */
    public int deleteElderById(Long id);

    /**
     * 批量删除老人
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteElderByIds(Long[] ids);


    /**
     * 根据入住ID查询老人数据
     *
     * @return:
     * @param: id 入住ID
     */
    CheckInElderVo selectByCheckId(Long id);

    /**
     * 查询有有效入住记录的老人
     *
     * @param query 查询条件
     * @return 老人列表
     */
    List<Elder> selectElderWithValidCheckIn(Map<String, Object> query);

    /**
     * 统计有有效入住记录的老人数量
     *
     * @param query 查询条件
     * @return 数量
     */
    int countElderWithValidCheckIn(Map<String, Object> query);
}
